home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 26 / AACD 26.iso / AACD / Programming / AllPlaton / Unsorted / Gamedisk#1.AMOS / Gamedisk#1.amosSourceCode < prev    next >
Encoding:
AMOS Source Code  |  1992-08-29  |  4.2 KB  |  177 lines

  1. Set Buffer 5
  2. Amos Lock 
  3. Close Workbench 
  4. Dim N$(3),E$(2)
  5. N$(1)="ULTIMATE TRON" : N$(2)="AMOTRIX" : N$(3)="MINI-MESSAGER"
  6. '
  7. Screen Open 0,320,200,4,0
  8. Paper 0 : Pen 1 : Curs Off : Flash Off : Cls 0
  9. Palette 0,$FF0,$D70,$C00
  10. Hide 
  11. A$="; A: P; I R2=0 J A; L X=R0+128; L Y=R1+50; L R2=0;"
  12. A$=A$+" A 1,(1,1)(2,1)(3,1)(4,1)(5,1)(6,1)(7,1)(8,1)(9,1)(10,1)(11,2)(12,2)(13,2)(14,2)(15,2)(16,2)(17,2)(18,2)(19,2)(20,2)(21,2)(22,1)(23,1); "
  13. A$=A$+"J A; "
  14. For A=0 To 7
  15.   Channel A To Sprite A
  16.   Amal A,A$
  17. Next 
  18. Amal On 
  19. For A=0 To 3
  20.   Colour 17+A*4,Colour(1) : Colour 18+A*4,Colour(2) : Colour 19+A*4,Colour(3)
  21. Next 
  22. Gr Writing 0
  23. B=0 : Y=50
  24. If Fire(1) Then Goto SKIP
  25. S$="WELCOME TO THE" : Gosub T : If Fire(1) Then Goto SKIP
  26. S$="GAMEDISK #1" : Gosub T : If Fire(1) Then Goto SKIP
  27. S$="BY CHRISTOPHER HODGES!" : Gosub T : If Fire(1) Then Goto SKIP
  28. For A=1 To 50
  29.   If Fire(1) Then Goto SKIP
  30.   Wait Vbl 
  31. Next 
  32. Add Y,16
  33. S$="ENJOY..." : Gosub T : If Fire(1) Then Goto SKIP
  34. For A=1 To 99
  35.   If Fire(1) Then Exit 
  36.   Wait Vbl 
  37. Next 
  38. SKIP:
  39. Fade 3 : Wait 48
  40. Amal Off : Sprite Off 
  41. Screen Close 0
  42. '
  43. Set Rainbow 1,1,150,"","",""
  44. For A=0 To 149 : Rain(1,A)=$FFF : Next 
  45. CR=63 : CG=63 : CB=63 : RS=-1 : GS=-2 : BS=-1
  46. Screen Open 2,320,9,8,0
  47. Paper 0 : Pen 1 : Curs Off : Flash Off : Cls 0
  48. Screen Display 2,128,255,320,
  49. Palette 0,0,0,0
  50. Screen Open 3,336,10,8,0
  51. Paper 0 : Pen 1 : Curs Off : Flash Off : Cls 0
  52. Screen Display 3,128,265,320,
  53. Palette 0,$FF0,0,$A80,0,$630,0,$200
  54. Loke Start(14)+4,Logbase(0)
  55. Loke Start(14)+8,Start(13)
  56. Paste Bob -1,0,56 : Paste Bob 272,0,57
  57. Screen Open 0,320,88,16,0
  58. Paper 0 : Pen 1 : Curs Off : Flash Off : Cls 0
  59. Screen Display 0,,166,,
  60. Unpack 15 To 1 : Screen Hide 1
  61. Screen 0 : Get Palette 1 : Colour 1,$FFF : Screen 1
  62. For A=0 To 15 : Colour A,0 : Next : Screen Show 1
  63. Wait Vbl : Fade 2 To 0 : Wait 15
  64. Call Start(14) : Wait 16
  65. Screen 0
  66. Get Sprite Palette 
  67. Double Buffer : Wait Vbl 
  68. Set Bob 1,1,15,%11001010
  69. P=1 : BAS=0 : HLP=0
  70. Gosub FIRSTPAGE
  71. Repeat 
  72.   J=Jleft(1)-Jright(1) : I$=Inkey$ : If Scancode=95 Then HLP=1 : Exit 
  73.   If J=0 Then Gosub CYCLE : Wait Vbl 
  74.   If J=1 Then Gosub NEXPAGE
  75.   If J=-1 Then Gosub PREPAGE
  76. Until Fire(1)
  77. If HLP=0 Then E$="PLEASE WAIT! LOADING "+N$(P)+"..."
  78. If HLP=1 Then E$="PLEASE WAIT! LOADING INSTRUCTIONS!"
  79. Gosub BLEND
  80. For A=1 To 16
  81.   RS=-3 : GS=-3 : BS=-3 : Gosub CYCLE : Wait Vbl 
  82. Next 
  83. Screen 3 : Fade 2 : Screen 0
  84. For A=1 To 16
  85.   RS=-3 : GS=-3 : BS=-3 : Gosub CYCLE : Wait Vbl 
  86. Next 
  87. Fade 3
  88. For A=1 To 32
  89.   RS=-3 : GS=-3 : BS=-3 : Gosub CYCLE : Wait Vbl 
  90. Next 
  91. Screen 1 : Fade 3
  92. For A=1 To 32
  93.   RS=-3 : GS=-3 : BS=-3 : Gosub CYCLE : Wait Vbl 
  94. Next 
  95. Rainbow Del : View 
  96. Screen 2 : Fade 1 : Wait 16
  97. Call Start(14)+2
  98. Screen Close 0 : Screen Close 1 : Screen Close 2 : Screen Close 3
  99. Wait Vbl 
  100. If HLP=0 Then Run N$(P)
  101. Run "Instructions"
  102. End 
  103. CYCLE:
  104.   Rainbow 1,BAS,35,75 : Wait Vbl 
  105.   Add CR,RS : If CR<0 Then CR=0 : RS=Rnd(3)+1
  106.   If CR>63 Then CR=63 : RS=-Rnd(3)-1
  107.   Add CG,GS : If CG<0 Then CG=0 : GS=Rnd(3)+1
  108.   If CG>63 Then CG=63 : GS=-Rnd(3)-1
  109.   Add CB,BS : If CB<0 Then CB=0 : BS=Rnd(3)+1
  110.   If CB>63 Then CB=63 : BS=-Rnd(3)-1
  111.   Rain(1,BAS)=CR/4*256+CG/4*16+CB/4
  112.   Rain(1,74+BAS)=CR/4*256+CG/4*16+CB/4
  113.   Add BAS,1,0 To 73
  114. Return 
  115. B:
  116.   Timer=0
  117.   Bob 1,124,0,A+24 : Gosub CYCLE
  118.   If Timer<2 Then Wait Vbl 
  119. Return 
  120. NEXPAGE:
  121.   For A=P*8+4 To P*8+7
  122.     Gosub B
  123.   Next 
  124. FIRSTPAGE:
  125.   For A=0 To 3
  126.     Gosub B
  127.   Next 
  128.   Add P,1,1 To 3
  129.   E$=N$(P) : Gosub BLEND
  130.   For A=4 To 7
  131.     Gosub B
  132.   Next 
  133.   For A=P*8 To P*8+3
  134.     Gosub B
  135.   Next 
  136. Return 
  137. PREPAGE:
  138.   For A=P*8+2 To P*8 Step -1
  139.     Gosub B
  140.   Next 
  141.   For A=7 To 4 Step -1
  142.     Gosub B
  143.   Next 
  144.   Add P,-1,1 To 3
  145.   E$=N$(P) : Gosub BLEND
  146.   For A=3 To 0 Step -1
  147.     Gosub B
  148.   Next 
  149.   For A=P*8+7 To P*8+3 Step -1
  150.     Gosub B
  151.   Next 
  152. Return 
  153. BLEND:
  154.   Screen 2 : Writing 2
  155.   Add PA,1,1 To 2
  156.   Home : Pen PA : Centre E$(PA) : E$(PA)=E$ : Centre E$
  157.   Fade 2,0,4096+(PA=1),4096+(PA=2),$FFF
  158.   Screen 0
  159. Return 
  160. T:
  161.   X=160-Len(S$)*4
  162.   Amreg(B,0)=X-2 : Amreg(B,1)=Y-4 : Amreg(B,2)=1 : Add B,1,0 To 7
  163.   Wait 5 : Gosub SOUND
  164.   For A=1 To Len(S$)
  165.     If Fire(1) Then Exit 
  166.     Amreg(B,0)=X+6 : Amreg(B,1)=Y-4 : Amreg(B,2)=1
  167.     Wait 5 : Gosub SOUND
  168.     Ink 3,0 : Text X+1,Y+7,Mid$(S$,A,1)
  169.     Ink 1,0 : Text X,Y+6,Mid$(S$,A,1)
  170.     Add X,8 : Add B,1,0 To 7
  171.   Next 
  172.   Add Y,16
  173. Return 
  174. SOUND:
  175.   If C=1 Then C=8 Else C=1
  176.   Sam Raw C,Start(13)+47832,7168,16000
  177. Return